package mapReader.commandos;

import information.Vakje;
import mapReader.GhostProtocol;
import mapReader.Speler;
import util.Coordinaat;
import util.StringUtils;
import util.WindRichting;

public class Discover extends CommandoMetGhostProtocol {

	public Discover(GhostProtocol ghostProtocol) {
		super(ghostProtocol);
	}

	@Override
	public String getNaam() {
		return "DISCOVER";
	}

	@Override
	public void verwerk(Speler bron, String[] parameters) {
		StringUtils su = new StringUtils();
		
		Coordinaat coordinaat = su.parseCoordinaat(parameters[0]);
		Boolean noord = su.parseBoolean(parameters[1]);
		Boolean oost = su.parseBoolean(parameters[2]);
		Boolean zuid = su.parseBoolean(parameters[3]);
		Boolean west = su.parseBoolean(parameters[4]);
		
		Vakje vakje = bron.getKaart().getVakjeOp(coordinaat);
		
		if(noord != null)
			bron.setMuur(WindRichting.NOORD, vakje.getCoordinaat(),  noord);
//			vakje.getVakGrens(WindRichting.NOORD).setMuur(noord);
		if(oost != null)
			bron.setMuur(WindRichting.OOST, vakje.getCoordinaat(),  oost);
//			vakje.getVakGrens(WindRichting.OOST).setMuur(oost);
		if(zuid != null)
			bron.setMuur(WindRichting.ZUID, vakje.getCoordinaat(),  zuid);
//			vakje.getVakGrens(WindRichting.ZUID).setMuur(zuid);
		if(west != null)
			bron.setMuur(WindRichting.WEST, vakje.getCoordinaat(),  west);
//			vakje.getVakGrens(WindRichting.WEST).setMuur(west);
	}

	@Override
	public int getAantalParameters() {
		return 5;
	}

	public void stuur(Coordinaat positieVakje, Boolean noord, Boolean oost, Boolean zuid, Boolean west) {
		StringUtils su = new StringUtils();
		
		String[] params = {
			su.coordinaatToString(positieVakje),
			su.booleanToString(noord),
			su.booleanToString(oost),
			su.booleanToString(zuid),
			su.booleanToString(west)
		};
		
		getGhostProtocol().stuur(this, params);
	}
}
